/*
 * Created on Jun 19, 2006
 */
package persistence;


/**
 * @author Valter Camargo
 *
 */
public aspect XOORelationalMapping {
	
	
	private pointcut joinPointFullConstructor(PersistentRoot pr): 
		 target(pr) && execution(PersistentRoot+.new(*,..));
	
	private pointcut joinPointEmptyConstructor(PersistentRoot pr): 
		execution (PersistentRoot+.new()) && target(pr);

	public pointcut topLevelJoinPointFullConstructor(PersistentRoot pr): 
		joinPointFullConstructor(pr) && execution((!PersistentRoot).new(*,..));
	
	public pointcut topLevelJoinPointEmptyConstructor(PersistentRoot pr): 
		joinPointEmptyConstructor(pr) && execution ((!PersistentRoot).new());
 		   

}
